package uno;

public class BiCola {
	private Nodo frente;
	private Nodo ultimo;

	public BiCola(){
		frente=ultimo=null;
	}

	public void insertarF(String elemento){
		Nodo a;
		a=new Nodo(elemento);
		if(colaVacia()){
			frente=a;
		}else
			ultimo.enlace=a;
		ultimo=a;
	}
	public void insertarI(String elemento){
		Nodo a;
		a=new Nodo(elemento);
		if(colaVacia()){
			frente=a;
			ultimo=a;
		}else{
			a.enlace=frente;
			frente=a;
		}		
	}

	public  String eliminarI()throws Exception{
		String aux;
		if(!colaVacia()){
			aux=frente.dato;
			frente=frente.enlace;
		}else
			throw new Exception("Cola vacia");
		return aux;
	}
	public  String eliminarF()throws Exception{
		String aux;
		if(!colaVacia()){
			aux=ultimo.dato;
			Nodo n=frente;
			do{
				if(n.enlace==ultimo){
					n.enlace=null;
					ultimo=n;
				}
				else
					n=n.enlace;
			}while(n.enlace!=null);

		}else
			throw new Exception("Cola vacia");
		return aux;
	}

	public void ver(BiCola c)throws Exception{
		Nodo n=c.frente;
		if(colaVacia()){
			throw new Exception("Cola vacia");
		}else{
			System.out.println("\n La Bicola es: ");
			do{
				System.out.print("| "+n.dato+" | ");
				n=n.enlace;
			}while(n!=null);
			System.out.println("\n");
		}
	}

	public boolean colaVacia(){
		return (frente==null);
	}
}
